let odocSignImgUtil = {
    odocFormImgLazyLoad(container) { // 图片懒加载
        if (!container || container.length === 0) { return; }
        // 获取父元素的高度
        let contHeight = container.outerHeight();
        let contWidth = container.outerWidth();
        let contop = 0;
        let conleft = 0;
        // 获取父元素相对于文档页顶部的距离，这边要注意了，分为以下两种情况；
        if (container.get(0) === window) {
            // 第一种情况父元素为window，获取浏览器滚动条已滚动的距离；$(window)没有offset()方法；
            contop = $(window).scrollTop();
            conleft = $(window).scrollLeft();
        } else {
            // 第二种情况父元素为非window元素，获取它的滚动条滚动的距离；
            contop = container.offset().top;
            conleft = container.offset().left;
        }

        container.find('img[original-src]').each(function () {
            // 对象顶部与文档顶部之间的距离，如果它小于父元素底部与文档顶部的距离，则说明垂直方向上已经进入可视区域了；
            // console.log("jQuery(this).offset().top--",jQuery(this).offset().top,"contop--",contop,"contHeight--",contHeight)
            let post = jQuery(this).offset().top - (contop + contHeight);
            // 对象底部与文档顶部之间的距离，如果它大于父元素顶部与文档顶部的距离，则说明垂直方向上已经进入可视区域了；
            let posb = jQuery(this).offset().top + jQuery(this).height() - contop;
            // 水平方向上同理；
            let posl = jQuery(this).offset().left - (conleft + contWidth);
            let posr = jQuery(this).offset().left + jQuery(this).width() - conleft;

            // console.log("jQuery(this).is(':visible')",jQuery(this).is(':visible'),"post--",post,"posb--",posb,"posl--",posl,"posr--",posr);
            if ((post < 0 && posb > 0) && (posl < 0 && posr > 0)) {
                let originalSrc = jQuery(this).attr('original-src');
                if (originalSrc != '') {
                    jQuery(this).removeAttr('src').attr('src', originalSrc).removeAttr('original-src');
                    jQuery(this).removeAttr('style').attr('style', jQuery(this).attr('original-style')).removeAttr('original-style');
                    jQuery(this).attr('width', jQuery(this).attr('original-width')).removeAttr('original-width');
                    jQuery(this).attr('height', jQuery(this).attr('original-height')).removeAttr('original-height');
                    jQuery(this).attr('onload', jQuery(this).attr('original-onload')).removeAttr('original-onload');
                    jQuery(this).attr('onresize', jQuery(this).attr('original-onresize')).removeAttr('original-onresize');
                    // 签章图片不能预览
                    if (!jQuery(this).hasClass('signatureImg')) {
                        // 绑定图片预览事件
                        jQuery(this).addClass('formImgPlay');
                        jQuery(this).bind('click', function () {
                            window.odocSignImgUtil.imageCarousel(this);
                        });
                    }
                    if (jQuery(this).hasClass('handWrittenSign')) {
                        handWritingHander(this);
                    }
                }
            }
        });
    },
    imageCarousel: (imgObj) => { // 图片放大轮播
        let imgPool = [];
        let indexNum = 0;
        const curImgSrc = jQuery(imgObj).attr('data-imgsrc') ? jQuery(imgObj).attr('data-imgsrc') : jQuery(imgObj).attr('src');
        let hasCalaulate = false;
        jQuery('.formImgPlay').each(function () {
            const imgsrc = jQuery(this).attr('data-imgsrc') ? jQuery(this).attr('data-imgsrc') : jQuery(this).attr('src');
            if (imgsrc) {
                imgPool.push(imgsrc);
                if (curImgSrc === imgsrc && jQuery(imgObj).closest('.workflow-signSetting').length === jQuery(this).closest('.workflow-signSetting').length) {
                    hasCalaulate = true;
                } else if (!hasCalaulate) { indexNum++; }
            }
        });
        IMCarousel.showImgScanner4Pool(true, imgPool, indexNum, null, window.top);
    },
    getLocationInfoData(remarkLocation = '') { // 位置串转成对象
        let locationInfoData = {};
        if (remarkLocation) {
            const locationInfos = remarkLocation.split(',');

            if (locationInfos.length === 4) {
                locationInfoData.longitude = locationInfos[1];
                locationInfoData.latitude = locationInfos[2];
                locationInfoData.name = locationInfos[3];
            }
            if (locationInfos.length === 3) {
                // 来自pc端的位置信息
                locationInfoData.longitude = locationInfos[0];
                locationInfoData.latitude = locationInfos[1];
                locationInfoData.name = locationInfos[2];
            }
        }
        return locationInfoData;
    },
    handWritingHander(imgObj) { // 手写签批，样式宽度单独计算
        if (imgObj) {
            const { propFileCfg } = src.layoutStore;
            const form_image_handWritingShowType = propFileCfg.form_image_handWritingShowType;
            const form_image_handWritingMaxHeight = propFileCfg.form_image_handWritingMaxHeight;
            const form_image_handWritingMaxWidth = propFileCfg.form_image_handWritingMaxWidth;
            if (form_image_handWritingShowType == '1' && form_image_handWritingMaxHeight != null) {
                return;
            }
            // 既设置了最大宽度px，又设置了最大宽度百分比，则计算谁更小
            if (form_image_handWritingShowType == '2' && form_image_handWritingMaxWidth != null) {
                let imgStyle = window.jQuery(imgObj).attr('style') || '';
                if (imgStyle.charAt(imgStyle.length - 1) != ';') {
                    imgStyle += ';';
                }
                let imgWidth_td = window.jQuery(imgObj).closest('td.etype_5').width();
                const form_image_scalingRatio = propFileCfg.form_image_scalingRatio;
                const imgWidth_temp = imgWidth_td * form_image_scalingRatio / 100;
                if (imgWidth_temp * 10 > form_image_handWritingMaxWidth * 10) {
                    imgStyle += `max-width: ${form_image_handWritingMaxWidth}px !important`;
                } else {
                    imgStyle += `max-width: ${form_image_scalingRatio}% !important`;
                }
                window.jQuery(imgObj).css('cssText', imgStyle);
            }
        }
    },
};
window.odocSignImgUtil = odocSignImgUtil;
